package Semantique;

import Typage.*;
import Error.TypeError;

public interface Visitor {
	public void visit(Loc n);

	public void visit(Ident n) throws TypeError;

	public void visit(Type n) throws TypeError;

	public void visit(FileType n) throws TypeError;

	public void visit(Typage.ClassType n) throws TypeError;

	public void visit(Fattribute n) throws TypeError;

	public void visit(Fconstructor n) throws TypeError;

	public void visit(Fmethod n) throws TypeError;

	public void visit(Var n) throws TypeError;

	public void visit(Enop n);

	public void visit(Ethis n) throws TypeError;

	public void visit(Enull n);

	public void visit(Econst_bool n);

	public void visit(Econst_int n);

	public void visit(Econst_string n);

	public void visit(Eident n) throws TypeError;

	public void visit(Eplus n) throws TypeError;

	public void visit(Eminus n) throws TypeError;

	public void visit(Emult n) throws TypeError;

	public void visit(Ediv n) throws TypeError;

	public void visit(Elt n) throws TypeError;

	public void visit(Ele n) throws TypeError;

	public void visit(Egt n) throws TypeError;

	public void visit(Ege n) throws TypeError;

	public void visit(Eeq n) throws TypeError;

	public void visit(Eneq n) throws TypeError;

	public void visit(Eand n) throws TypeError;

	public void visit(Eor n) throws TypeError;

	public void visit(Eassign n) throws TypeError;

	public void visit(Eseq n) throws TypeError;

	public void visit(Eneg n) throws TypeError;

	public void visit(Enot n) throws TypeError;

	public void visit(Enew n) throws TypeError;

	public void visit(Eprimcall n) throws TypeError;

	public void visit(Efield n) throws TypeError;

	public void visit(Emethcall n) throws TypeError;

	public void visit(Eif n) throws TypeError;

	public void visit(Ewhile n) throws TypeError;

	public void visit(Eletin n) throws TypeError;
}
